home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / dsp / dr.bub / 96000.lha / 96000 / appb / b121.asm < prev    next >
Assembly Source File  |  1992-04-28  |  4KB  |  63 lines

  1. ; This program was originally published in the Motorola DSP96002 Users Manual
  2. ; and is provided under a DISCLAIMER OF WARRANTY available from Motorola DSP
  3. ; Operation, 6501 William Cannon Drive West, Austin, Texas 78735-8598.  For
  4. ; more information, refer to the DSP96002 Users Manual, Appendix B, DSP
  5. ; Benchmarks.
  6. ;
  7.  
  8. ; B.1.21     1x3  3x3  and  1x4  4x4  Matrix Multiply  
  9. ;                                               1x3  3x3  Matrix Multiply 
  10. ;                                                          Program    ICycles
  11. ;                                                          Words 
  12.   move        #mat_a,r0       ;point to A matrix 
  13.   move        #2,m0           ;mod 3 
  14.   move        #mat_b,r4       ;point to B matrix 
  15.   move        #-1,m4          ;set for linear addressing 
  16.   move        #mat_c,r1       ;output C matrix 
  17.  
  18.   move                         x:(r0)+,d4.s y:(r4)+,d5.s ;a11,b11 1   1 
  19.   fmpy.s d4,d5,d3              x:(r0)+,d4.s y:(r4)+,d5.s ;a12,b21 1   1 
  20.   fmpy.s d4,d5,d0              x:(r0)+,d4.s y:(r4)+,d5.s ;a13,b31 1   1 
  21.   fmpy   d4,d5,d3 fadd.s d3,d0 x:(r0)+,d4.s y:(r4)+,d5.s ;a11,b12 1   1 
  22.   fmpy   d4,d5,d3 fadd.s d3,d0 x:(r0)+,d4.s y:(r4)+,d5.s ;a12,b22 1   1 
  23.   fmpy.s d4,d5,d1              x:(r0)+,d4.s y:(r4)+,d5.s ;a13,b32 1   1 
  24.   fmpy   d4,d5,d3 fadd.s d3,d1 x:(r0)+,d4.s y:(r4)+,d5.s ;a11,b13 1   1 
  25.   fmpy   d4,d5,d3 fadd.s d3,d1 x:(r0)+,d4.s y:(r4)+,d5.s ;a12,b23 1   1 
  26.   fmpy.s d4,d5,d2              x:(r0)+,d4.s y:(r4)+,d5.s ;a13,b33 1   1 
  27.   fmpy   d4,d5,d3 fadd.s d3,d2              d0.s,y:(r1)+ ;save 1  1   1 
  28.                   fadd.s d3,d2              d1.s,y:(r1)+ ;save 2  1   1 
  29.   move                                      d2.s,y:(r1)+ ;save 3  1   1 
  30.  ;                                                                --- --- 
  31.  ;                                                        Totals:  12  12 
  32.  
  33.  
  34.  ;                       1x4  4x4  Matrix Multiply 
  35.  ;                                                         Program     ICycles
  36.  ;                                                         Words 
  37.   move      #mata,r0  ;[1x4] matrix pointer, X memory 
  38.   move      #matb,r4  ;[4x4] matrix pointer, Y memory 
  39.   move      #matc,r1  ;output matrix, X memory 
  40.  
  41.   move                         x:(r0)+,d4.s y:(r4)+,d7.s ;a11,b11 1   1 
  42.   fmpy.s d7,d4,d0              x:(r0)+,d3.s y:(r4)+,d7.s ;a12,b21 1   1 
  43.   fmpy.s d7,d3,d1              x:(r0)+,d5.s y:(r4)+,d7.s ;a13,b31 1   1 
  44.   fmpy   d7,d5,d1 fadd.s d1,d0 x:(r0)+,d6.s y:(r4)+,d7.s ;a14,b41 1   1 
  45.   fmpy   d7,d6,d1 fadd.s d1,d0              y:(r4)+,d7.s ;b12     1   1 
  46.   fmpy   d7,d4,d1 fadd.s d1,d0              y:(r4)+,d7.s ;b22     1   1 
  47.   fmpy.s d7,d3,d2              d0.s,x:(r1)+ y:(r4)+,d7.s ;b32     1   1 
  48.   fmpy   d7,d5,d2 fadd.s d2,d1              y:(r4)+,d7.s ;b42     1   1 
  49.   fmpy   d7,d6,d2 fadd.s d2,d1              y:(r4)+,d7.s ;b13     1   1 
  50.   fmpy   d7,d4,d0 fadd.s d2,d1              y:(r4)+,d7.s ;b23     1   1 
  51.   fmpy.s d7,d3,d2              d1.s,x:(r1)+ y:(r4)+,d7.s ;b33     1   1 
  52.   fmpy   d7,d5,d2 fadd.s d2,d0              y:(r4)+,d7.s ;b43     1   1 
  53.   fmpy   d7,d6,d2 fadd.s d2,d0              y:(r4)+,d7.s ;b14     1   1 
  54.   fmpy   d7,d4,d1 fadd.s d2,d0              y:(r4)+,d7.s ;b24     1   1 
  55.   fmpy.s d7,d3,d0              d0.s,x:(r1)+ y:(r4)+,d7.s ;b34     1   1 
  56.   fmpy   d7,d5,d0 fadd.s d0,d1              y:(r4)+,d7.s ;b44     1   1 
  57.   fmpy   d7,d6,d0 fadd.s d0,d1                                    1   1 
  58.                   fadd.s d0,d1                                    1   1 
  59.   move                         d1.s,x:(r1)+                       1   1 
  60.  ;                                                                --- --- 
  61.  ;                                                        Totals: 19  19 
  62.  
  63.